#include "seuos.h"  //使用内核
#include "led.h" 
#include "usart.h" 

seu_stk stk_app_led[128];
seu_stk stk_app_rtc[128];
seu_stk stk_app_float_test[128];

void app_led(void);
void app_rtc(void);
void app_float_test(void);

void _seu_user_init(void) //用户代码初使化函数(delay_us/ms()在此有效,os_delay()禁止)
{
    printf("hello seuOS\r\n");
}

void os_main(void)
{   
    seu_sys_init();
    _seu_user_init();
    /*  APP函数名      APP栈(栈顶)    APP优先级(1-（OS_APP_MAX-1）)优先级不能相同     */
    seu_thread_create(app_led, &stk_app_led[128-1], 2); //创建APP //数组标号最大为N-1
   // seu_thread_create(app_rtc, &stk_app_rtc[128-1], 8); 
   // seu_thread_create(app_float_test, &stk_app_float_test[128-1], 5);
    seu_sys_start();
}
void app_led(void)  //APP
{  	
    while(1) 
    {	
        LED_R(0); 
        LED_G(1);
        LED_B(1);
        seu_printf("led on\r\n");
        port_delay_ms(500);
        LED_R(1); 
        LED_G(0);
        LED_B(0);
        seu_printf("led off\r\n");
        seu_delay(500);
    } 
}
void app_rtc(void)  //APP
{   
	seu_uint8_t hour=6,munite=0,second=0;
	while(1) 
	 {	 		 
		 if(second<59) second++; 
		 else 
		 {
			 second=0;
			 munite++;
			 if(munite==60) 
			 {
			   second=0;
				 munite=0;
				 hour++;
				 if(hour==24)
				 {
				 	 second=0;
				   munite=0;
					 hour=0;
				 }
			 }
		 }
		 seu_printf("real time : 1949.10.01  %02d:%02d:%02d\r\n",hour,munite,second);
		 seu_delay(1000);
   } 
}

void app_float_test(void)  //APP
{  
	seu_uint16_t a = 128;   //测试变量
	float b = 9.123456; //测试变量
	
	seu_printf("   浮点数测试  \r\n\r\n");//示例代码，使用时删除		
	while (1)
	{		
		seu_printf("十进制格式：  %d\r\n",a); //示例代码，使用时删除		
		seu_printf("十六进制格式：0x%x\r\n",a);
		seu_printf("小数格式：    %f\r\n",b);			
		seu_delay(1000);
	}	
}
